package com.ruoyi.design.service.impl;

import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.uuid.IdUtils;
import com.ruoyi.common.utils.uuid.UUID;
import com.ruoyi.design.domain.ProductDict;
import com.ruoyi.design.domain.ProductInfo;
import com.ruoyi.design.domain.vo.ProductInfoVO;
import com.ruoyi.design.mapper.ProductDictMapper;
import com.ruoyi.design.mapper.ProductInfoMapper;
import com.ruoyi.design.service.IProductInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class ProductInfoServiceImpl implements IProductInfoService
{
    @Autowired
    private ProductInfoMapper productInfoMapper;
    @Autowired
    private ProductDictMapper productDictMapper;

    /**
     * 查询【请填写功能名称】
     *
     * @param id 【请填写功能名称】主键
     * @return 【请填写功能名称】
     */
    @Override
    public ProductInfo selectProductInfoById(String id)
    {
        return productInfoMapper.selectProductInfoById(id);
    }

    /**
     * 查询【请填写功能名称】列表
     *
     * @param productInfo 【请填写功能名称】
     * @return 【请填写功能名称】
     */
    @Override
    public List<ProductInfo> selectProductInfoList(ProductInfo productInfo)
    {
        List<ProductInfo> productInfos = productInfoMapper.selectProductInfoList(productInfo);
//        List<ProductDict> dicts = productDictMapper.dictDataByDictType("packaging_reflects", 0L);
//        for (ProductInfo product :productInfos){
//            String reflects = product.getPackagingReflects();
//            String[] reflect = reflects.split(",");
//            StringBuilder sb = new StringBuilder();
//            for (int i = 0; i < reflect.length; i++) {
//                for (ProductDict dict : dicts){
//                    System.out.println(product.getUserName() + reflect[i]);
//                    if (dict.getDictValue().equals(reflect[i])){
//                        sb.append(dict.getDictLabel());
//                    }
//                }
//                if (i < reflect.length - 1) {
//                    sb.append(",");
//                }
//            }
//            product.setPackagingReflects(sb.toString());
//        }
        //包装体现
        ProductDict productDict = new ProductDict();
//        productDict.setDictType("packaging_reflects");
        productDict.setDictType("packaging_reflects");
        List<ProductDict> productDicts = productDictMapper.selectProductDictList(productDict);
        productInfos.forEach(product -> {
            StringBuilder stringBuilder = new StringBuilder();
            String[] split = product.getPackagingReflects().split(",");
            for (int i = 0; i < split.length; i++) {
                for (int j = 0; j <productDicts.size() ; j++) {
                    if(productDicts.get(j).getDictValue().equals(split[i])){
                        stringBuilder.append(productDicts.get(j).getDictLabel());
                        if(i != split.length - 1){
                            stringBuilder.append(",");
                        }
                    }
                }
            }
            product.setPackagingReflects(stringBuilder.toString());
        });
        return productInfos;
    }

    /**
     * 新增【请填写功能名称】
     *
     * @param productInfo 【请填写功能名称】
     * @return 结果
     */
    @Override
    public int insertProductInfo(ProductInfoVO productInfo)
    {
        productInfo.setId(IdUtils.simpleUUID());
        productInfo.setCreateTime(DateUtils.getNowDate());
        List<String> reflectsList = productInfo.getPackagingReflectsList();
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < reflectsList.size(); i++) {
            sb.append(reflectsList.get(i));
            if (i < reflectsList.size() - 1) {
                sb.append(",");
            }
        }
        productInfo.setPackagingReflects(sb.toString());
        return productInfoMapper.insertProductInfo(productInfo);
    }

    /**
     * 修改【请填写功能名称】
     *
     * @param productInfo 【请填写功能名称】
     * @return 结果
     */
    @Override
    public int updateProductInfo(ProductInfo productInfo)
    {
        return productInfoMapper.updateProductInfo(productInfo);
    }

    /**
     * 批量删除【请填写功能名称】
     *
     * @param ids 需要删除的【请填写功能名称】主键
     * @return 结果
     */
    @Override
    public int deleteProductInfoByIds(String[] ids)
    {
        return productInfoMapper.deleteProductInfoByIds(ids);
    }

    /**
     * 删除【请填写功能名称】信息
     *
     * @param id 【请填写功能名称】主键
     * @return 结果
     */
    @Override
    public int deleteProductInfoById(String id)
    {
        return productInfoMapper.deleteProductInfoById(id);
    }
}
